package config

import (
	"fmt"

	"github.com/spf13/viper"
)

func NewServerConfig(fileName string) (*ServerConfig, error) {
	v := viper.New()

	v.AddConfigPath("config")
	v.SetConfigType("yaml")
	v.SetConfigName(fileName)

	if err := v.ReadInConfig(); err != nil {
		return nil, fmt.Errorf("config.ReadInConfig: %v", err)
	}

	var config ServerConfig
	if err := v.Unmarshal(&config); err != nil {
		return nil, fmt.Errorf("config.Unmarshal: %v", err)
	}

	return &config, nil
}
